// 导入创建路由的相关方法
import { createRouter, createWebHashHistory } from "vue-router";

// 导入 .vue 组件
import Home from '../components/Home.vue'
import Add from '../components/Add.vue'
import List from '../components/List.vue'
import Update from '../components/Update.vue'
import ShowDetail from '../components/ShowDetail.vue'
import ShowDetail2 from '../components/showDetail2.vue'

const router = createRouter({
    history:createWebHashHistory(),
    routes:[
        {
            path:"/showDetail2",
            component:ShowDetail2
        },
        {
            path:"/showDetail/:id/:language",
            component:ShowDetail
        },
        {
            path:"/",
            component:Home,
        },
        {
            path:"/home",
            component:Home,
        },
        {
            path:"/list",
            component:List,
        },
        {
            path:"/add",
            component:Add,
        },
        {
            path:"/update",
            component:Update
        }
    ]
})

// 设置全局前置首位
// 每次路由切换页面前，都会执行 beforeEach 中的回调函数
router.beforeEach(
    (to,from,next)=>{
        /**
         * from 上一个页面 表示从哪里来
         * to 下一个页面 表示到哪里去
         * next 放行的方法，只有执行了该方法，才会放行路由 类似与过滤器中的 filterChain.doFilter
         * next() 放行
         * next("/路径") 路由的重定向,可以转发到其他地址
         * 但是到达目标组件前会在此经过前置路由守卫，需要注意判断，避免无限重定向
         * 
         * 
         */
        console.log("beforeEach")
        console.log(from.path)
        console.log(to.path)
        next()
    }
)
// 设置全局后置路由
// 每次路由切换页面后，都会执行 afterEach 中的回调函数
router.afterEach(
    ()=>{
        console.log("afterEach")
    }
)
export default router